(1) Field of the Invention
The present invention relates to a cryptographic technique that encrypts a plaintext to generate a ciphertext and then decrypts the ciphertext to obtain the original plaintext.
(2) Description of the Related Art
In recent years, it is becoming increasingly common to encrypt important information before transmission to prevent third parties from knowing its content. More secure forms of encryption are therefore being sought.
Japanese Laid-Open Patent Application No. H11-7239 teaches a data encryption apparatus that aims to achieve more secure encryption.
This data encryption apparatus divides a plaintext received from outside into a plurality of plaintext blocks and encrypts each plaintext block using key data to generate ciphertext blocks. When encrypting the first plaintext block, this data encryption apparatus uses key data obtained from outside the apparatus. For the second and following plaintext blocks, the data encryption apparatus updates the key data using the ciphertext block generated when encrypting the preceding plaintext block, and encrypts the present plaintext block using this updated key data.
The data encryption apparatus encrypts each plaintext block in the following way. The data encryption apparatus includes a subkey generating unit and first to eighth encrypting units. The subkey generating unit uses the key data to generate first to eighth subkeys. Each of these first to eighth subkeys are different. The first encrypting unit generates a first intermediate block from a plaintext block using the first subkey. The second encrypting unit generates a second intermediate block from the first intermediate block using the second subkey. The third to seventh encrypting units similarly generate third to seventh intermediate blocks from the second to sixth intermediate blocks using the third to seventh subkeys. The eighth encrypting unit generates a ciphertext block from the seventh intermediate block using the eighth subkey.
Each plaintext block is encrypted using key data that differs for each plaintext block. This makes it difficult to accumulate pairs of plaintexts that have been encrypted using the same key and the resulting ciphertexts. As a result, the security of the encryption against known plaintext attacks, such as differential cryptanalysis and linear cryptanalysis, is improved.
However, the subkey generating unit in this data encryption apparatus has to generate many different subkeys every time a plaintext block is encrypted. This has the drawback of lowering the speed of the cryptographic processing.